


#传入不可变对象实例
def change(a):
    print(id(a)) # 指向的是同一个对象
    a=10
    print(id(a)) # 一个新对象



def printme(str):
    "打印任何字符串"
    print(str)
    return

#默认参数
def printinfo(name,age = 35): #默认参数必须放在最后面，不然会报错
    "打印任何字符串"
    print("姓名:",name)
    print("年龄:",age)
    return


#不定长参数
def printinfo1(arg1,*vartuple):
    "不定长参数。加了星号 * 的参数会以元组(tuple)的形式导入"
    print("aeg1:",arg1)
    print("元组：",vartuple)
    return
def printinfo2(arg1,**vardict):
    "不定长参数。加了两个星号 ** 的参数会以字典的形式导入"
    print("aeg1:", arg1)
    print("字典：",vardict)
    return


if __name__ == '__main__':
    a=1
    print(id(a))
    change(a)
    str1 = "必须参数"
    # 必须参数
    printme(str1)
    # 关键字参数
    printme(str="关键字参数")
    #默认参数
    printinfo(name="Ed",age=19)
    printinfo(name="QW")

    #不定长参数--元组
    printinfo1(10,20,30,"nick")
    #不定长参数--字典
    printinfo2(10,A=20,C=30,name = "nick")
